package peace.util
{
import flash.display.DisplayObject;
import flash.display.DisplayObjectContainer;

public class Display
{
	/**
	 * Рекурсивно ищем экземпляры класса в контейнере
	 * 
	 * @param target
	 * @param c
	 * @return 
	 * 
	 */
	public static function findChildInstances (target:DisplayObjectContainer, c:Class):Array
	{
		var arr:Array=[];
		
		if (target is c)
		{
			arr.push(target);
		}	
		var child:DisplayObject;
		for (var i:uint=0; i<target.numChildren; i++)
		{
			child = target.getChildAt(i);
			if (child is DisplayObjectContainer && DisplayObjectContainer(child).numChildren>0)
			{
				arr = arr.concat(findChildInstances(DisplayObjectContainer(child), c));
			}
			else if (child is c)
			{
				arr.push(child);
			}
		}
		
		return arr;
	}
	/**
	 * Ищем родителя в иерархии родителей
	 *  
	 * @param child
	 * @param parent
	 * @return 
	 * 
	 */	
	public static function isChild (child:DisplayObject, parent:DisplayObjectContainer):Boolean
	{
		for (; child != null; child = child.parent)
		{
			if (child == parent) return true;
		}
		return false;
	}
	
}

}